home *** CD-ROM | disk | FTP | other *** search
/ Mac Magazin/MacEasy 19 / Mac Magazin and MacEasy Magazine CD - Issue 19.iso / Spiele & Edutainment / BMAPEdit ƒ / BMAPEdit doc (text) < prev    next >
Text File  |  1996-02-02  |  48KB  |  858 lines

  1. BMAPEdit Version 3.0
  2. (c)1993-96 Carl R. Osterwald
  3.  
  4. Introduction
  5.  
  6. BMAPEdit is a Macintosh application to create and edit maps for Bolo, the
  7. multi-player distributed tank battle game written by Stuart Cheshire.  BMAPEdit
  8. reads, edits, prints, and creates files (of type 'BMAP') for use with Bolo.  It
  9. has been designed to provide you, the people who enjoy playing Bolo, with the
  10. tools needed to quickly and efficiently make creative maps.
  11.  
  12. BMAPEdit is shareware.  If you like and use BMAPEdit, please send $10.00 to:
  13.     Carl R. Osterwald
  14.     75 S. Dudley St.
  15.     Lakewood, Colorado 80226
  16.  
  17. This program may be freely distributed provided this documentation file is
  18. distributed also.  It may not be sold commercially.  This version is free to
  19. previously registered users.
  20.  
  21. Please send any comments, suggestions, or, most importantly, bug reports to:
  22.     Internet:  carl_osterwald@nrel.gov
  23.     or by physical mail to the address above.
  24.  
  25. 1.    Acknowledgments
  26. *    Stuart Cheshire--of course, who wrote Bolo and provided the code to read
  27.     and write Bolo map files.  Stuart also co-developed the code for the
  28.     graphical previews that appear when opening map files.
  29. *    Tom Barrett & Stuart Cheshire provided the Bolo preview graphics code.
  30. *    Scott Knaster & Keith Rollin wrote "Macintosh Programming Secrets," highly
  31.     recommended for anyone writing Macintosh code.
  32. *    Forrest Tanaka developed the offscreen graphics code that is contained in
  33.     the Apple DTS Tech Note, "Principia Offscreen Graphics".
  34. *    Peter Lewis developed the random map generator & growth algorithms.
  35. *    Charles Brabec granted permission to incorporate his Birdman's Map Maker
  36.     source code as the tiled random map generator.
  37. *    Phil Parilla developed the self-avoiding random walk-maze algorithm.
  38. *    Jim Stout wrote the 3D buttons that are a part of Jim's CDEFs and available
  39.     free of charge.
  40. *    Christer Ericson wrote the function that calculates the area of a QuickDraw
  41.     Region.
  42. *    And especially all the beta testers whose hard work and patience dealing
  43.     with less-than-optimum programming have allowed BMAPEdit to become what it
  44.     is today.  Many thanks to:
  45.     
  46.     Thomas Apodaca, Aaron Bratcher, Chip Benowitz, Charles Dillon, Chris Hanson,
  47.     Eric Hiris, Bill Ingalls, Brian Keyes, Gavin Kistner, Dan LaLiberte, Russell
  48.     Mast, Phil Parilla, Caine Schneider, Andrew Tennant, & John White.
  49.  
  50. 2.    System Requirements & Capabilities
  51. *    Color Quickdraw (not available on Macs with 68000 CPUs such as Classics or
  52.     SEs)
  53. *    750 kBytes of memory (prefers 1 MByte)
  54. *    System 7.0 or greater
  55. *    Accelerated for Power Macintosh (optimized for PowerPC 604 microprocessors)
  56. *    Macintosh drag and drop (with System 7.5 or greater)
  57. *    Balloon help
  58. *    B&W printing (requires a PostScript printer)
  59. *    Color/grayscale printing (requires a PostScript Level 2 printer)
  60.  
  61. BMAPEdit does not require a color monitor, but color will allow you to take full
  62. advantage of the display capabilities of BMAPEdit.
  63.  
  64. Each open map window requires 66 kBytes of memory.  BMAPEdit will warn you if
  65. the amount of free memory drops to dangerous levels as more map windows are
  66. opened.  The amount of free memory is displayed in BMAPEdit's About Box (choose
  67. About BMAPEdit in the Apple menu).
  68.  
  69. The amount of memory allocated to BMAPEdit affects the drawing speed.  The
  70. initial memory size is 1750 kbytes, which lets BMAPEdit use the maximum amount
  71. of memory for its offscreen drawing buffer.  If this memory size is reduced,
  72. drawing speeds will be somewhat slower.  In case you need to run with less
  73. memory, you change it by quitting the application, selecting the BMAPEdit icon
  74. (don't double-click it), and choose Get Info... in the Finder's File menu.  You
  75. can then adjust the memory size as your needs dictate.
  76.  
  77. BMAPEdit versions earlier than 3.0 would run under System 6.0.4 or later.  If
  78. you are still using System 6, you should not upgrade to a version later than
  79. 2.0.1.
  80.  
  81. Balloon help is provided for all menus, the ToolBox, and a number of dialogs. 
  82. It can be activated from the Guide (help) menu in the right hand side of the
  83. menu bar.  Help balloons will then appear as the mouse is moved (after balloon
  84. help is first activated, it can take several seconds for the balloons to start
  85. appearing).
  86.  
  87. BMAPEdit is a so-called 'fat' application, which means it contains code to
  88. operate on either 68000 or PowerPC Macintoshes.  A modest amount of disk space,
  89. about 200 kBytes, can be saved by removing whichever version is not needed for
  90. your computer.  If necessary, this space can be saved by using a utility program
  91. such as StripFat, which is available from the popular Info-Mac FTP archive
  92. servers.
  93.  
  94. 3.    Bolo Maps
  95. Bolo maps use a grid of 256 by 256 squares.  Squares are numbered left-to-right
  96. and top-to-bottom starting at 0 and ending at 255.  Of these squares, the
  97. outermost 10 squares on all sides are filled with mines by Bolo (the outer
  98. minefield) and cannot have terrain placed in them.  Although refueling bases and
  99. pillboxes can be located in the outer minefield, the author of Bolo discourages
  100. this and a warning dialog box asking for confirmation is displayed when
  101. placement in the outer minefield is attempted.  Also, Bolo does not allow any
  102. terrain except deep water in an additional 10 square border inside of the mine
  103. field squares.  While this deep water border is intended for start squares (the
  104. invisible squares that define where tanks can enter the game), bases and
  105. pillboxes may also be located here if desired.  All regular terrain other than
  106. special squares (bases, pillboxes, and start squares) is restricted to squares
  107. 20 through 235 horizontally, and 20 through 235 vertically.  The border of this
  108. area is called the terrain mapping limit rectangle in BMAPEdit.
  109.  
  110. BMAPEdit does not read old-style 'resource' Bolo map files.  These older files
  111. may be read and converted by opening them with the Bolo application and then
  112. saving to a new file.
  113.  
  114. 4.    Map Windows
  115. The Bolo display shows the map squares in 16x16 pixel rectangles.  This
  116. corresponds to the Preview mode in the BMAPEdit Mag menu.  Four other modes,
  117. 12x12, 10x10, 8x8, and 5x5, display the map data in reduced Bolo graphics. 
  118. Start squares are shown as a tank on a boat in deep water (except for 5x5, which
  119. use a small arrow), pointed in the same direction as the start square's
  120. direction.  Initial ownership of bases and PBs is indicated as follows:  bases
  121. and PBs with ownership of 1 are drawn in green (friendly); bases with ownership
  122. greater than 1 are drawn in red (hostile) (also see the Options menu section).
  123.  
  124. The remaining display modes, 3x3 and 1x1, use single colors to represent map
  125. terrain.  In B&W 3x3 and 1x1, land squares are black and water squares are
  126. white.  In 1x1 magnification, an entire Bolo map can be viewed in a window of
  127. only 256 by 256 pixels.  The colors used for the reduced display modes have been
  128. selected to allow distinction of terrain on monitors with only 16 colors
  129. available.  A key to the reduced colors is in the ToolBox below each of the
  130. terrain icons.  Mines are shown as a yellow dot centered in terrain squares at
  131. 3x3, and are not displayed at 1x1.  Start squares show up as a small red arrow
  132. or dot.
  133.  
  134. The border of the terrain mapping limit rectangle can optionally be displayed
  135. (see the preferences item under the Edit menu below).  The horizontal and
  136. vertical map coordinates are displayed in the floating ToolBox palette as the
  137. mouse is moved across the map window.
  138.  
  139. Two other display options are ownership of bases and pillboxes, and special
  140. square numbering.  These options, which cannot be enabled simultaneously, place
  141. small numbers over the special squares.  Blue numbers are used for bases, red
  142. numbers for pillboxes, and green numbers for start squares.
  143.  
  144. Special square numbering is the logical ordering of these objects in the map
  145. data; it does not have any visible effects on the map.  In the Bolo information
  146. displays, bases and pillboxes are indicated starting with number 1 in the
  147. top-left corner of the displays and continuing left-right top-to-bottom to
  148. number 16 (or to the total number of bases or PBs).  Bolo itself has two
  149. options, pillbox labels and base labels, that display numbering.  However, the
  150. Bolo numbers start with zero rather than the more conventional one.  Thus,
  151. Bolo's pillbox and base labels will be one less than the numbers displayed in
  152. BMAPEdit.
  153.  
  154. BMAPEdit can also display the range of pillbox shots, according to a checkbox in
  155. the preferences dialog.  There are several important ranges in Bolo, as follows:
  156. 1) the maximum distance a tank can shoot is 6 1/2 squares from the tank center,
  157. 2) the distance at which a pillbox will begin shooting at a tank is 8 squares
  158. from the center of the pillbox, and 3) the maximum distance a pillbox shot can
  159. travel is 8 1/2 squares from the center of the pillbox.  BMAPEdit displays this
  160. last range as a white circle around pillboxes.
  161.  
  162. Map windows can be scrolled with the scroll bars, with the 'grabber' hand that
  163. is activated by the pressing the space bar, or with the page up, page down,
  164. home, and help keys on extended keyboards.
  165.  
  166. 5.    Map Drawing
  167. BMAPEdit uses a 'foreground – background' style where the foreground terrain is
  168. defined by the icon selected in the ToolBox, and the background terrain is
  169. selected through a popup menu at the bottom of the ToolBox (a background terrain
  170. popup menu also is located in the preferences dialog).  All drawing applies the
  171. foreground terrain to make changes, while the background terrain is applied when
  172. a selected region is moved, rotated, reflected, or cleared.
  173.  
  174. Drawing is done with five basic methods: pencil, line, filling, framing, and
  175. painting.  Of these, filling and framing are performed on regions defined with
  176. the selection tools in the ToolBox (the rectangle, rounded rectangle, oval,
  177. polygon, and lasso tools) by using the corresponding commands in the Utilities
  178. menu.  Pencil drawing, line drawing, and painting are done by clicking with the
  179. respective tools from the ToolBox. Important--line drawing, filling, and framing
  180. apply the pattern currently selected in the Patterns menu, where a black pixel
  181. in the pattern changes the terrain in the map squares affected to the
  182. foreground, and white pixels cause no changes.  Many effects can be achieved
  183. with the patterns, including, for example, perfect 'checkerboard' mine fields. 
  184. Such a mine field would be laid down through the 50% gray pattern.  When
  185. BMAPEdit is first opened, the pattern defaults to solid black.
  186.  
  187. Pencil drawing changes individual map squares to the foreground terrain.  It
  188. operates in the traditional 'paint' program style.  As the pencil is moved
  189. across a map, the destination square that would be changed by a click is
  190. highlighted with an open white box (except for magnifications less than 8x8). 
  191. Pencil drawing is also the primary way special squares--refueling bases,
  192. pillboxes, and start squares--are added to a map.  Filling, framing, painting,
  193. and line drawing do not apply to special squares.  Therefore, selecting the
  194. base, pillbox, or start square icons in the ToolBox automatically selects the
  195. pencil tool.  Start squares are added to a map by clicking and dragging the
  196. pencil until the desired direction is indicated.  Note--the direction of existing
  197. start squares can be also changed by clicking and dragging with the pencil. 
  198. Special squares are deleted by clicking them with the bulldozer tool from the
  199. ToolBox.  The bulldozer can also be activated from the pencil tool by holding
  200. the option key down.
  201.  
  202. Lines are drawn after a line segment has been selected by clicking and dragging
  203. with the line tool.  The line produced is affected by the current pattern, and
  204. its size is determined by the current line size setting in the preferences
  205. dialog.  The line tool can also be used to make square blocks quickly by
  206. selecting an appropriate line size and clicking on the map without dragging. 
  207. Lines drawn in road, water, or deep water terrain at line size equal to 1
  208. produce a path that is traversable.  Holding down the option key while dragging
  209. a line with the line tool causes BMAPEdit to make a randomly-walked path with a
  210. line size of 1 (the line size setting in this case is ignored).
  211.  
  212. Filling is performed by selecting a region with a selection tool (see the
  213. ToolBox discussion below) and choosing the Fill Selection item in the Utilities
  214. menu.  Framing is similar, except that the line width used is determined by the
  215. current line size setting in the preferences dialog.  Two framing operations are
  216. available--either inside the selection boundary, or outside.
  217.  
  218. Painting is done by clicking with the paint bucket tool.  The paint bucket
  219. simply changes all the identical terrain squares adjacent to the click location
  220. to the foreground terrain.  It operates in the traditional 'paint' program
  221. style.  If the paint bucket is applied inside a selected region, painting is
  222. clipped to the selection boundary and will not go outside the boundary. 
  223. Painting can also be done with the random blob tool which works similarly to the
  224. paint bucket, but stops when a small irregular shape is produced, rather than
  225. changing all adjacent identical terrain.  Note--holding the option key down while
  226. clicking with the paint bucket does not change terrain, but rather selects the
  227. region that 'paint' would flow to (see the lasso tool below).  Holding both the
  228. shift and option keys down extends an existing region selection.
  229.  
  230. Mines and special squares represent special cases.  Mines can only be applied to
  231. existing swamp, crater, road, forest, rubble, or grass squares.  Attempting to
  232. place mines on any other types of terrain is ignored.  Start squares can only be
  233. placed in deep water.  If other terrain is subsequently applied to a start
  234. square, the start square is removed.  Also, bases and pillboxes 'float' above
  235. whatever terrain they have been placed in, including deep water.  The terrain a
  236. base or pillbox sits on is what a map square becomes when that base or pillbox
  237. is moved during a game (currently, Bolo allows only pillboxes to be moved). 
  238. Note--it is possible to create completely unusable refueling bases by locating
  239. them in deep water, with all adjacent squares also deep water.  A tank can land
  240. at the base and refuel, but because boats cannot remain in deep water
  241. unoccupied, there is no way to leave the base without dying in deep water.
  242.  
  243. Note--Bolo maps are currently limited to 16 of each type of special square
  244. (bases, pillboxes, and start squares).  BMAPEdit, however, allows up 32 bases
  245. and pillboxes each to be placed on maps.  This is allowed because it is easy to
  246. create more than 16 when copying and pasting selections.  Rather than
  247. automatically eliminating the extras, BMAPEdit places them and allows you to
  248. decide which ones to delete.  This feature also allows you to examine different
  249. options before deciding which is best.  When saving such a map, however, only
  250. the first 16 of each are put into the map and a dialog appears telling you that
  251. the extra bases and pillboxes were not included.
  252.  
  253. 6.    The ToolBox
  254. The ToolBox is a floating window/palette that is divided into five sections. 
  255. These sections are, from top to bottom:  1) the foreground terrain selection,
  256. 2) current special square counts, 3) the tool palette, 4) the map coordinate and
  257. area of selection display (both in units of map squares), and 5) the background
  258. terrain popup menu.
  259.  
  260. The foreground terrain selection section is an array of fifteen terrain types,
  261. represented as icons, that can be applied to Bolo maps.  These icons are
  262. identical to the terrain squares as drawn by Bolo in a game.  Just below each
  263. icon is a color bar that shows which color is used to represent that terrain in
  264. the reduced color drawing modes (the color bars do not appear in B&W).  The
  265. bottom row of icons in the terrain palette are the special squares, from left to
  266. right, refueling bases, pillboxes, and start squares.
  267.  
  268. Clicking the zoom box in the upper right toggles the ToolBox between its full
  269. size and a minimum-sized bar.  Note--the Window Shade function introduced with
  270. System 7.5 performs the same function when double- or triple-clicking on a
  271. window's title bar; they are not entirely compatible.  Once the ToolBox has been
  272. minimized with the zoom box, Window Shade clicks do not affect it--it must be
  273. restored with the zoom box.
  274.  
  275. The sixteen tools in the tool palette are described next in left-to-right,
  276. top-to-bottom order.
  277.  
  278. The pointer tool performs three functions:  dragging selections, dragging
  279. special squares, and double-clicking special squares.  All dragging is pinned to
  280. the terrain limit rectangle which was defined above, except when Macintosh drag
  281. and drop is available.  Moving selections by dragging them is straightforward,
  282. and, after the move, the terrain in the selection is replaced with the
  283. background terrain.  Once a selection has been dragged, it can be moved again
  284. without affecting the map until the selection is 'set' (or the 'paint has
  285. dried') by selecting another tool, pressing the escape or tab keys, or by
  286. switching to another map window.  See the drag and drop section below for more
  287. information about dragging.
  288.  
  289. Special squares may be relocated without having to first select them with one of
  290. the selection tools.  Simply click and drag them to the new location.  Notice
  291. that this is different from dragging a selection because the terrain under the
  292. special square is not moved.  Also, special square drags do not use the Drag
  293. Manager (see below) and thus cannot leave the starting window.
  294.  
  295. The settings of special squares may be adjusted by double-clicking them.  A
  296. double-click brings up a dialog window that will allow you to make whatever
  297. changes you desire.  The special square dialogs are described in more detail
  298. below.
  299.  
  300. Bases, pillboxes, and start squares are deleted by clicking them with the
  301. bulldozer tool, which is also activated by pressing the option key while the
  302. pencil tool is selected.
  303.  
  304. The magnifying glass is used to switch display modes.  Holding the option key
  305. down while clicking switches to a lower magnification, while a normal click
  306. produces the opposite effect.  Display modes may also be switched with the  +
  307. and - keys, as well as the number keys.  The control key functions as a keyboard
  308. shortcut for the magnifying glass.
  309.  
  310. The pencil and line tools are used for pencil and line drawing, as described
  311. above.  Dragging with the shift key down restricts lines to horizontal,
  312. vertical, and diagonal directions.
  313.  
  314. The random blob and paint bucket tools have been described above in the drawing
  315. section.
  316.  
  317. Rectangle, rounded rectangle, and oval regions are selected with the next three
  318. tools, respectively.  Dragging with the shift key down causes square and circle
  319. regions to be selected, and if the option key was pressed when the mouse was
  320. clicked, the selections expand from the click location, causing the selection to
  321. be centered at this point.  Centered selections can be an even or odd number of
  322. squares wide and high, depending on the where the initial click is relative to
  323. the center of the square.  Option-clicks near the center produce odd width and
  324. height selections, otherwise the selection is even number of squares wide and
  325. high.
  326.  
  327. Polygons are selected with the polygon tool.  Each mouse click in succession
  328. adds another point to the polygon, up to a maximum of 128 points.  A
  329. double-click adds a final point and closes the polygon.  The previous polygon
  330. point can be deleted, before the final point is added, by holding the option key
  331. down and clicking.  Note that a polygon does not have to be open, i.e. a series
  332. of points can be closed by 'doubling back' to the first point.  The sequence of
  333. line segments produced can be framed, but not filled.
  334.  
  335. The lasso is used to select regions of existing terrain.  Terrain to be selected
  336. is surrounded by a series of points in a manner identical to polygon selections
  337. (the final point is added with a double-click).  The selection is then shrunk to
  338. an outline of terrain dissimilar to the terrain at the first point selected.
  339.  
  340. Selections can rotated or reflected perpendicular to a line with the rotator and
  341. reflector transformation tools.  The original selection region is replaced with
  342. the background terrain unless the selection is not yet 'set' (or the 'paint is
  343. still wet').  After rotation or reflection, the selection can be dragged into
  344. final position without disturbing existing terrain until the selection is 'set'.
  345. Note that it is possible for special squares to be lost during the
  346. transformations.  Two adjacent specials can transform to the same square,
  347. causing one to be removed.  Also, in very small selections, i.e. one square, the
  348. transformation can result in loss of the special square, especially at rotation
  349. or reflection angles that are not even multiples of 45 degrees.  Note that
  350. holding the shift key down while clicking with the rotator and reflector tools
  351. constrains the transformation angle to multiples of 45 degrees.
  352.  
  353. Finally, you can add lettering to maps with the text tool.
  354.  
  355. 7.    Drag and Drop
  356. Introduced with Macintosh System 7.5 was the ability to drag information between
  357. windows, even those of different applications.  BMAPEdit uses the Drag Manager
  358. for dragging map selections, and also accepts information transferred from other
  359. applications.  Thus, it is possible to drag map pieces, or even entire maps, to
  360. other map windows.  Drag and drop is really an extension of cut and paste,
  361. although it operates independently from the clipboard.
  362.  
  363. Dragging selections with the drag manager is nearly identical to when it is
  364. absent, except that selection outlines are allowed to leave the starting window.
  365.  The selection outline snaps to map squares until it is outside of the window,
  366. at which point this is no longer possible.
  367.  
  368. Dragging from map windows--selections dragged out map windows will contain the
  369. map information in three formats, called drag flavors:  1) BMAPEdit internal map
  370. data, 2) text, and 3) Quickdraw picture format (PICT).  The last two formats are
  371. intended for exporting map information to other applications, while the internal
  372. flavor is for transferring information between BMAPEdit windows (note that the
  373. text flavor can be disabled with a checkbox in the preferences dialog).
  374.  
  375. There are two drag destinations external to BMAPEdit that are very useful for
  376. map making--the scrapbook and the desktop.  Selections dragged to the scrapbook
  377. will show the picture representation, and will list the other drag flavors
  378. contained.  If the desktop is the final destination of a drag, the Finder will
  379. create a so-called clipping file containing the drag information. 
  380. Double-clicking a clipping file causes the Finder to display its contents.  Both
  381. of these can be used to store often-used map pieces.
  382.  
  383. Dragging to map windows--when a map window becomes the destination of a drag
  384. flavor that BMAPEdit can accept, the two-pixel white border around the map
  385. display is highlighted.  BMAPEdit accepts drags of text, pictures, and its own
  386. internal drag flavor.
  387.  
  388. See the Text Import/Export section for more information about text translation
  389. of map data, and the Edit menu section for details of importing pictures.
  390.  
  391. 8.    Snap-To-Grid
  392. BMAPEdit has the ability to restrict drawing operations to an invisible grid. 
  393. The grid defaults to the minimum size of one square, but can be set to larger
  394. values with the Grid Size item in the Options menu (see the Menus section
  395. below).  A grid size of three, for example, will force the cursor to map squares
  396. evenly divisible by three, e.g., squares 3, 6, 9, 12, etc.  When dragging
  397. selections or special squares, objects are moved in offsets from the starting
  398. locations that are multiples of the grid size.
  399.  
  400. The X-Y map coordinate display in the ToolBox snaps to the current grid setting.
  401.  
  402. 9.    Random Utilities
  403. BMAPEdit has special utilities for adding random features to Bolo maps.  Several
  404. of these--random bases & PBs, random maps, random fills, random frames, make
  405. island, maze fill and city fills--are accessed through the Utilities menu and are
  406. discussed below.  Small random shapes or 'blobs' can be made with the random
  407. blob tool, or with the pencil tool and the shift key pressed.  The random shape
  408. only 'grows' on terrain identical to the click location in a way similar to the
  409. paint bucket Random 'walks' or lines can be added with the line tool and option
  410. key held down.
  411.  
  412. 10.    Menus
  413. File menu-- The File menu operates on Bolo maps, text files, and picture files. 
  414. Important features of these menu items are described below.
  415.  
  416. When the Open item in the File menu is selected, and System 7 is available,
  417. BMAPEdit displays a custom open file dialog box.  As map files are highlighted
  418. in the file list, the map data is read from the file and a small preview of the
  419. map is displayed in the left-hand side. Neither the outer mines nor the start
  420. squares are shown.  In B&W, land is black and water is white, except for bases
  421. and PBs, which are white.  This graphical feedback is intended to give visual
  422. clues about the file being opened, as opposed to selecting a file by just the
  423. file name.
  424.  
  425. BMAPEdit performs a validity check on the special squares when an existing map
  426. is opened.  The check detects bases, pillboxes, or starts that occupy the same
  427. squares, and looks values of armor, direction, shot speed, shells, mines, and
  428. ownership are within the limits defined for Bolo maps.  If problems are found, a
  429. dialog box is displayed asking for permission to correct the problems.  Out of
  430. range values are set to default values, and extra specials in a single square
  431. are removed.  If you change your mind, the Undo command in the Edit menu will
  432. reverse all the corrections.
  433.  
  434. A warning dialog is displayed when a map that has no start squares is saved
  435. because such a map is not usable as a game map.
  436.  
  437. If the option key is pressed while selecting the Close or Save items, all map
  438. windows currently open will be closed or saved.
  439.  
  440. The Open Text/Save as Text items allow importing and exporting Bolo maps as text
  441. files that can viewed without the Bolo application or a map editor such as
  442. BMAPEdit, using a standard set of ASCII characters.  See the section on text
  443. import/export for complete details of the character set.
  444.  
  445. Saving a map as a PICT produces a PICT (Quickdraw picture) file that shows the
  446. Bolo map drawn according to the export format selected in the preference dialog.
  447. Please note that these files can be quite large at larger magnifications and if
  448. color is desired.
  449.  
  450. The Launch Map item allows you to start a new Bolo game using the top map window
  451. from BMAPEdit.  If the map has not been saved, you will be asked to save the map
  452. before Bolo is launched.
  453.  
  454. Bolo map files can be printed in B&W to a PostScript printer, or in
  455. color/grayscale to PostScript Level 2 printer, according to the settings in the
  456. LaserWriter print dialog window.  The output is intended as a navigational aid,
  457. and larger maps are printed with progressively smaller squares.  Color/grayscale
  458. printing will require significantly more time to print than B&W, and will cause
  459. a PostScript error if the printer selected in the Chooser is not a PostScript
  460. Level 2 printer.
  461.  
  462. Edit menu-- The Edit menu follows the standard Macintosh format.  Map regions
  463. that have been copied or cut and then subsequently pasted can be dragged into
  464. final position using the pointer tool.  Map data that is in the clipboard is
  465. converted to a PICT image according to the export format selected in the
  466. preferences dialog, for export to other applications.  If auto conversion item
  467. in the preferences dialog is checked, clipboard data is converted to PICT format
  468. automatically whenever BMAPEdit is switched to the background, or when Quit is
  469. selected in the File menu.  If automatic conversion is not enabled (the default
  470. setting), clipboard data can always be converted with the Convert Clipboard
  471. item.  Note--large selections can consume large amounts of memory, especially
  472. when color conversion is requested.  It is therefore possible for the conversion
  473. to fail if not enough memory is available.
  474.  
  475. PICT images that are in the clipboard can be pasted into a map.  Terrain is
  476. determined by the colors in the image, and should correspond to the color bars
  477. in the ToolBox.  Red and yellow should be avoided as these are used for display
  478. of special squares and therefore are converted to the background terrain.
  479.  
  480. Select All selects a rectangular area that bounds the entire map while ignoring
  481. deep water.  If the map is empty, the entire editable area is selected.
  482.  
  483. The Clone item performs a two-step copy-paste operation that allows a copy of
  484. the selected area to be dragged away while leaving the original terrain
  485. untouched.  Because the pasted selection is directly over the original, there is
  486. no visible change to the map.
  487.  
  488. The Transform Again item repeats the last move, rotation, or reflection
  489. operation on the current selection.  Thus, if the last operation was a
  490. five-square move, transform again will move whatever is currently selected by
  491. the same offset.  With the combination of clone and transform again, it possible
  492. to create a large number of identical items, and is especially useful in making
  493. tiles for the tiled random map generator (see below).  To do this, draw the
  494. first tile, select the tile, clone it, then drag it to the next position.  Then
  495. repeatedly clone and transform to make a number of tiles.  The command keys
  496. equivalents (cmd-\ and cmd-,) make the process almost instantaneous.
  497.  
  498. The Preferences item presents a dialog window in which all of the options for
  499. BMAPEdit are selected.  The settings in the options menu are preserved in a
  500. preferences file.  Many of these have been discussed previously.  The Random
  501. Fill % item allows the approximate percentage of a random fill to be selected. 
  502. Random fills are discussed in greater detail below.  The Show Numbering and Show
  503. Ownership checkboxes are mutually exclusive; they cannot both be checked at the
  504. same time.  Another checkbox determines if text representations of map data are
  505. sent when dragging selection out of BMAPEdit with the Drag Manager (see the drag
  506. and drop section above).
  507.  
  508. Mag menu-- The Mag menu is used to switch magnification display modes. 
  509. Command-key equivalents are provided for convenience.  The Increase/Decrease
  510. items change magnification by one level and can be accessed through the +/-
  511. command keys on the keyboard or keypad.
  512.  
  513. Patterns menu-- The Patterns menu is used to select the Quickdraw pattern that is
  514. used for line drawing, filling, and framing selections.  It defaults to solid
  515. black, as discussed above.
  516.  
  517. If you are familiar with editing resources, using ResEdit or other resource
  518. editors, you can edit the patterns provided in BMAPEdit's  resource fork, or add
  519. new ones.  The patterns are loaded from resource type 'PAT#', ID 128.  Editing
  520. the solid black pattern, the first one in the list, is not recommended because
  521. without it, there is no way to perform solid fills and lines.
  522.  
  523. Utilities menu-- The Utilities menu contains an assortment of operations that can
  524. be performed on Bolo maps.  These operations are now described in order.
  525.  
  526. The Fill Selection and Frame Selection items were discussed above in the Drawing
  527. section.
  528.  
  529. The Random Fill item is used to randomly distribute the foreground terrain
  530. throughout a selection.  The amount of filling will be close to (but not
  531. precisely) the percentage as set in the preferences dialog.  This setting, which
  532. is the probability a single square will be filled, defaults to 20%.  Random
  533. fills of boats only affect existing water terrain (not deep water).  The Random
  534. Frame item operates on rectangular or polygon selections and performs a random
  535. walk from point-to-point using the foreground terrain and a line size of one
  536. square.  Also, see the keyboard shortcuts section for further information about
  537. producing random terrain.
  538.  
  539. Frame Outside was also discussed above.
  540.  
  541. The next three items, Make Island, Maze Fill, and City Fill, generate random
  542. fills in selections.  For the maze and city files, if the current selection is
  543. not rectangular, the result is clipped to the selection.
  544.  
  545. Make Island produces a randomly shaped island inside the selection, and then
  546. performs a fill, random fills, and then a frame as directed.  Popup menus allow
  547. selection of the island and outline terrains, including no change if desired. 
  548. If a polygon is selected, the polygon is used and a random shape is not
  549. produced.  Small, one-square pinholes can be prevented with a checkbox selection
  550. in the Make Island dialog.
  551.  
  552. The Maze Fill item will produce a random maze in a rectangular area with one
  553. entrance and one exit on opposite sides of the rectangle.  Terrain for the maze
  554. consists of the path terrain and the barrier terrain which are selected with
  555. popup menus in the maze dialog.  Thicknesses of the paths and barriers are then
  556. specified with scroll bars.  The maze generation algorithm requires an odd
  557. number of squares horizontally and vertically.  If an even number is selected,
  558. the maze size will be decreased by one.
  559.  
  560. Random cities consisting of horizontal and vertical roads can be generated with
  561. the City Fill item inside of rectangular selections.  Note that parks,
  562. consisting mostly of trees, consume a total of four city blocks each.
  563.  
  564. The Starter Map item will generate a quick rectangular map filled with grass and
  565. framed with water, and with start squares evenly distributed about the
  566. perimeter.  As an option, starter maps with the original Bolo map format
  567. (104x52) can also be generated.
  568.  
  569. The Random Map item randomly generates an entire Bolo map, including special
  570. squares if the appropriate checkboxes are selected in the Random Map dialog. 
  571. This utility is very similar to the RandomMapGenerator written by Peter Lewis
  572. (the algorithm was adapted from the source code for RandomMapGenerator).  Any
  573. existing terrain and all special squares are erased before the map is generated.
  574. The map will be constrained to whatever region is currently selected, if
  575. desired, or a rectangular map centered in the Bolo grid can be selected as an
  576. alternative.  If the 'Deep water inside map' dialog item is not checked, the map
  577. region will be filled with shallow water before the map is generated. 
  578. Otherwise, islands generated will be framed with shallow water. Pairs of bases
  579. can be linked with roads using the Connect Bases checkbox. Selecting the In
  580. Pairs checkbox causes an equal number of adjacent bases and pillboxes to be
  581. added in pairs.
  582.  
  583. Another complete random map utility is the Tiled Random Map, adapted from
  584. Birdman's Map Maker, written by Charles Brabec.  This utility, which was
  585. originally developed to run on Unix computers using standard console (character)
  586. input/output, works by randomly selecting map pieces, called tiles, from a list
  587. of tiles defined in a special kind of Bolo map, called a tile file.  The tiles,
  588. 5x5 map squares in size, are selected so that the terrain at the center of the
  589. edges matches previously chosen tiles.  Thus, the tiled map generator has the
  590. unique ability to have terrain propagate through a map.  Other unique features
  591. of the tiled map generator include a nonrandom base and pillbox placement that
  592. uses a distribution algorithm, and the six map symmetry options available, from
  593. no symmetry to 4-fold rotational.  A picture with letters illustrate the current
  594. symmetry selection in the tiled map dialog.  Tiles in tile files that contain
  595. terrain not checked among the allowed terrain checkboxes are rejected for
  596. selection, and the default terrain popup menu selects the terrain that is used
  597. to construct blank tiles.  Blank tiles are created when no tiles can be found in
  598. the list to match existing edges or that fit the checkbox criteria.  Because
  599. there are no checkboxes for mines, boats, or deep water, these terrain types are
  600. always allowed.
  601.  
  602. Because maps constructed by the tiled map generator are made from the pieces in
  603. a tile file, they are very much a function of the tile file used.  Tile files
  604. consist of rows of 5x5 square map pieces separated by one square of deep water. 
  605. Tiles are read from the file one at a time, starting at the upper left corner
  606. and continuing left-to-right, top-to-bottom, until a tile is encountered that is
  607. completely deep sea. Therefore, normal Bolo maps will not be accepted as tile
  608. files because they will be seen as having no tiles.  Bases and pillboxes on the
  609. tiles are used as hints for selecting locations when placing bases and pillboxes
  610. on the new map.  Start squares in tile files, however, are ignored.
  611.  
  612. The next four items all operate on special squares.  All the bases, pillboxes,
  613. or start squares can be removed with the Remove Specials item.  Set To Defaults
  614. resets the ownership, armor, etc., values of bases and pillboxes to the
  615. defaults.  The Place Bases & PBs item is used to add a number of bases and PBs
  616. to a selected area, or throughout the entire map.  A popup menu of placement
  617. options allows for symmetrical, non-symmetrical, or random placement.  Bases and
  618. pillboxes are never added over 'liquid' terrain, i.e. water, deep water, or
  619. boats, and pillboxes are never located on 'solid' terrain, i.e. buildings or
  620. shot buildings.  The function of the In Pairs checkbox is identical to the
  621. similar checkbox in the Random Map dialog.  Shuffle Bases & PBs randomly changes
  622. the logical order of bases or pillboxes.  This utility will not have any visible
  623. effect on the map, except for changing the numbers that appear when Bolo's base
  624. or pillbox labels options are selected (see the discussion of map windows
  625. above).
  626.  
  627. The next three items, Clear Mines, Remove Boats, and Replace Terrain, operate on
  628. the entire map, or inside a selected area.  Terrain replacement allows you to
  629. substitute any kind of terrain for another.  If you dislike mines at the
  630. beginning of a game they can be removed with Clear Mines.
  631.  
  632. Lastly, the Center Terrain utility moves the center of all non-deep water
  633. terrain in the map to the map center, the point 128, 128.  This facility is
  634. provided because the author of Bolo recommends that maps be centered in the
  635. 256x256 point map grid.
  636.  
  637. Windows menu-- The Windows menu can be used to bring other map windows to the
  638. top, and to show the ToolBox if it has been closed.  The first item, Center
  639. Window, scrolls the top map window so that the center point, 128, 128, is in the
  640. center of the window.
  641.  
  642. 11.    Custom Map File Icons
  643. A checkbox option in the preference dialog allows BMAPEdit to create custom file
  644. icons when maps are saved.  These icons are 32x32 pixel images of the map
  645. terrain.  Although the icons give graphical hints about maps, they do have a
  646. couple drawbacks.  First, the icons increase the file size by about 2700 bytes,
  647. an amount that can be several times the size of map files without icons. 
  648. Second, in folders with large numbers of custom icons, the time needed to draw
  649. the icons can increase dramatically because the Finder must read each one
  650. separately from the disk.
  651.  
  652. Another factor to keep in mind is that a new custom icon may not be immediately
  653. visible.  The Macintosh Finder keeps a cache of information it needs to draw
  654. folder windows, and it can be difficult to get the Finder to update a window. 
  655. The most successful way seems to be to close and reopen the folder containing
  656. the newly-saved map.  If the new scriptable Finder is available, introduced with
  657. System 7.5, BMAPEdit can tell the Finder to change the icon, in which case the
  658. window will be updated immediately.
  659.  
  660. If the custom icon option is turned off, BMAPEdit will not create custom icons
  661. for a map file when it is saved, and will remove any existing icons.  This is
  662. because when the map is altered, the icons may not accurately reflect the new
  663. map terrain.
  664.  
  665. While BMAPEdit can manage custom icons for a single file, it is impractical to
  666. try to use it for a large number of map files.  Another utility called
  667. Iconz4Maps is available for this purpose.  A copy of Iconz4Maps is provided with
  668. the BMAPEdit distribution package.
  669.  
  670. 12.    Special Square Dialogs
  671. These dialogs, which are opened by double-clicking bases, pillboxes, or start
  672. squares with the pointer tool, allow all settings of these special squares to be
  673. selected, including start square direction, initial ownership, base initial
  674. stocks, and pillbox firing intervals.
  675.  
  676. The pillbox firing interval (or speed) is the number of 20 millisecond periods
  677. between pillbox shots; a 'mad' pillbox fires with a shorter interval between
  678. shots.  Note that the initial firing interval at the beginning of a game decays
  679. rapidly to the idle value of 100.
  680.  
  681. Ownership is determined by the order in which players join a game, i.e., the
  682. second player to join would automatically own bases that have been set to an
  683. ownership of 2.
  684.  
  685. Setting a new base or pillbox number causes two bases or pillboxes to swap
  686. positions--all others are not affected.  If the numbering is ignored, they are
  687. numbered in the order they were placed on the map.  Note that, in the case of
  688. pillboxes, this facility is of little use later in the game because PBs can be
  689. killed, moved, and 'replanted'.
  690.  
  691. The terrain underneath bases and pillboxes can be set in the dialogs.  Also, all
  692. existing bases and pillboxes can be set to identical values with the Set All
  693. Pillboxes or Set All Bases buttons (except for numbering).
  694.  
  695. 13.    Keyboard Shortcuts and Actions
  696. Command key:
  697. *    Produces the pointer cursor while pressed
  698.  
  699. Space bar:
  700. *    Activates the 'grabber' hand for scrolling in map windows
  701.  
  702. Escape key (also tab key):
  703. *    Deselects any active selection
  704.  
  705. Shift key:
  706. *    Dragging new selections with the shift key down produces squares, square
  707.     ovals, and circles.
  708. *    Dragging lines and adding polygon points with the shift key down restricts
  709.     lines and new points to horizontal, vertical, and diagonal directions.
  710. *    Changes pencil tool to the random blob tool.
  711.  
  712. Option key:
  713. *    Changes magnifier cursor to demagnifier if demagnification is possible.
  714. *    Changes pencil tool to bulldozer for removal of special squares.
  715. *    Clicking and dragging the line tool with the option key pressed produces a
  716.     random walk from the start to the end point.
  717. *    If the option key was pressed when the mouse was clicked while dragging a
  718.     new rectangle, rounded rectangle, or oval selection, the new selection
  719.     expands from the click location, causing the selection to be centered at
  720.     this point.
  721. *    Option-clicking with the polygon tool or the lasso selector causes the
  722.     previous selection point to be replaced.
  723.  
  724. Control key:
  725. *    Activates the magnifier cursor for changing map views.
  726.  
  727. ToolBox keyboard shortcuts:
  728. *    D:    Deep water
  729. *    O:    Deep water (Ocean)
  730. *    W:    Water
  731. *    R:    Road
  732. *    G:    Grass
  733. *    F:    Forest
  734. *    T:    Forest (Trees)
  735. *    L:    Building (waLLs)
  736. *    M:    SwaMp
  737. *    C:    Crater
  738. *    B:    Base
  739. *    P:    Pillbox
  740. *    S:    Start square
  741. *    Arrow keys:    moves to next tool in direction of arrow
  742.  
  743. Start square dialog shortcuts:
  744. *    Tab:    selects next direction counterclockwise (or anti-clockwise)
  745. *    Option-Tab:    selects next direction clockwise
  746. *    Arrow keys:    selects corresponding cardinal direction (N, S, E, or W)
  747.  
  748. Additional shortcuts:
  749. *    Delete, clear:    clear selection (same as clear item in Edit menu)
  750.  
  751. Extended keyboard shortcuts:
  752. *    F1, F2, F3, F4:    corresponding Edit menu operations (undo, cut, copy,
  753.     paste)
  754. *    Page Up, Page Down:    same as clicking in vertical scroll bar gray areas
  755. *    Help, Home:    same as clicking in horizontal scroll bar gray areas
  756.  
  757. 14.    Text Import/Export
  758. Each terrain type is translated to/from an ASCII text character.  These are
  759. intended as a method of illustrating written discussions about strategy and
  760. tactics, especially when posted to the Usenet news groups.  Terrain that has
  761. been exported as text will have the proper appearance when displayed in a
  762. mono-spaced font such as Monaco or Courier.  If a proportionally spaced font is
  763. used, map squares in the same vertical column will not line up.
  764.  
  765. Several drawbacks with using these characters should be noted.  First, start
  766. squares loose their directionality.  Second, the terrain under mines is lost,
  767. i.e. there is no way to indicate whether a mine is on grass, swamp, road,
  768. rubble, crater, or trees.  Third, for a tank in a boat, there is no way to tell
  769. if it is in water or deep water.  Also, damage levels to pillboxes cannot be
  770. determined.  Finally, differentiation of ownership of bases and pillboxes for
  771. players 4 through 16 is not possible.  None of these will prevent the use of the
  772. character set as intended.  The terrain characters are:
  773. deep water          ;
  774. water               :
  775. swamp               s
  776. grass               blank (space)
  777. road                +
  778. forest              #
  779. crater              c
  780. rubble              r
  781. shot building       %
  782. building            O (not zero)
  783. boat                b
  784. neutral base        @
  785. player 1 base       1
  786. player 2 base       2
  787. player 3 base       3
  788. player 4..16 base   4
  789. neutral pillbox     *
  790. player 1 pillbox    7
  791. player 2 pillbox    8
  792. player 3 pillbox    9
  793. player 4..16 PB     0 (not capital 'O')
  794. visible mine        X
  795. invisible mine      x
  796. start square        S
  797. tank                t
  798. tank in boat        T
  799.  
  800. Please note that when importing text, all other visible characters are changed
  801. to grass.  Also, the terrain for 'T' is interpreted as either water or deep
  802. water depending on the surrounding map squares.  If the number of surrounding
  803. squares that are deep water is three or less, a 'T' is interpreted as water,
  804. otherwise it becomes deep water.  A carriage return (ASCII control-M) begins a
  805. new map row.  When exporting map terrain as text, all mines are invisible
  806. because visibility of mines is not defined in map files, but rather only while a
  807. game is in progress within Bolo itself.
  808.  
  809. 15.    Known Bugs
  810. When dragging selections, quick, rapid, enter and leave movements of the mouse
  811. in and out of the source window can cause the selection outline to be offset
  812. incorrectly.  This is caused by the way dragging is controlled and can't really
  813. be corrected.  Fortunately, it rarely occurs.  Also, under rare conditions,
  814. dragging a selection downward so the window display scroll can leave lines of
  815. old pixels on the screen.  It occurs so infrequently I have not been able to
  816. determine the cause.
  817.  
  818. 16.    Warranty
  819. There are no warranties.  The author makes no guarantees that BMAPEdit will
  820. perform as specified, or that its use will not completely ruin your computer
  821. (but it shouldn't, it hasn't ruined his).
  822.  
  823. 17.    Epilogue
  824. "For example, consider the rise of hypnocracy during April and May of 1972.  The
  825. 43 persons constituting the Grateful Dead's (latest) European Tour apportioned
  826. themselves for the most part between two buses which came to be known as the
  827. Bolo bus and the Bozo bus.  The Bolo bus had a john in it and its seats faced
  828. forward.  The Bozo bus had a refrigerator and some of its seats were installed
  829. facing back, to accommodate four tables.  And to look back.  The subtle
  830. difference in character and import and atmosphere between the two omnibuses was
  831. so profoundly hidden and enigmatic that you could never possibly understand it. 
  832. The Bozos wore masks, and the Bolos showed their faces.  At one time the Bozos
  833. staged a raid on the Bolo provisions; at one time the Bolo staged a raid on the
  834. Bozo provisions.
  835.  
  836. "One St. Dilbert defected from the Bozos and lived for a season with the Bolos. 
  837. In view of his subsequent martyrdom, his penitence and reconciliation with the
  838. Bozos, it came to be said that he was a true hypnocratic missionary to Bololand.
  839.  And to look back, it appears evident that Bozo and Bolo knew themselves each
  840. the other's raison d'etre.  Is hypnocracy not the aspiration to know what it
  841. is?"
  842.     --Grateful Dead, Europe '72
  843.  
  844.  
  845.     "The heavens declare the glory of God;
  846.         the skies proclaim the work of his hands.
  847.     "Day after day they pour forth speech;
  848.         night after night they display knowledge.
  849.     "There is no speech or language
  850.         where their voice is not heard.
  851.     "Their voice goes out into all the earth,
  852.         their words to the ends of the world.
  853.     "He determines the number of the stars,
  854.         and calls them each by name.
  855.     "Great is our Lord and mighty in power;
  856.         his understanding has no limit."
  857.     --Psalm 19:1-4, 147:4, NIV
  858.